/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Gerenciar;

import entidades.Cliente;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Session;

/**
 *
 * @author Deyves
 */
public class GerenciarCliente {

    public static boolean gravar(Cliente cliente) {
        try {
            Session session = DaoHibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            session.saveOrUpdate(cliente);
            session.getTransaction().commit();
            session.close();
            return true;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao inserir no Banco de Dados!");

            return false;
        }
    }

    public static List<Cliente> trazerClientes() {
//        String juntaCliente = null;
//        List<Object> listaCliJuncao = null;
//        Object[] objectemp = new Object[3];
        Session session = DaoHibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        List<Cliente> lista = session.createQuery("FROM Cliente ORDER BY nome").list();
//        for (int i = 0; i < lista.size(); i++) {
//            juntaCliente = lista.get(i).getNome();
//            objectemp[0] = juntaCliente.toUpperCase();
//            juntaCliente = lista.get(i).getCpf().toString();
//            objectemp[1] = juntaCliente.toUpperCase();
//            juntaCliente = lista.get(i).getEnderecocliente().getRua() + ", "
//                    + lista.get(i).getEnderecocliente().getNumero().toString() + " - "
//                    + lista.get(i).getEnderecocliente().getBairro() + " / "
//                    + lista.get(i).getEnderecocliente().getCidade().getNome() + " - "
//                    + lista.get(i).getEnderecocliente().getCidade().getEstado().getDescricao();
//            objectemp[3] = juntaCliente.toUpperCase();
//            juntaCliente = juntaCliente.toUpperCase();
//            listaCliJuncao.add(i, objectemp);
//        }
        return lista;
    }

    public static Cliente trazerCliente(int id) {
        try {
            Session session = DaoHibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
//            List<Cliente> list = (List<Cliente>) session.createQuery("FROM Cliente WHERE id =" + id).list();
            Cliente cliente = (Cliente) session.createQuery("FROM Cliente WHERE id =" + id);
            return cliente;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Cliente não encontrado");
            return null;
        }

    }

    public static boolean excluir(Cliente cliente) {
        try {
            Session session = DaoHibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            session.delete(cliente);
            session.getTransaction().commit();
            session.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}
